C-define-printlnf 函数重写

可以使用宏定义,定义对应的 PRINTLNF 实现自动换行的效果。

#define PRINTLNF(format, ...) printf(format"\n",__VA_ARGS__)

当没有变长参数时 __VA_ARGS__ 前面的逗号需要去掉。所以这里加上## 就可以解决这个问题。

#define PRINTLNF(format, ...) printf(format"\n", ##__VA_ARGS__)

如果想要打印对应文件名和函数名。

预定义宏 说明
__FILE__ 当前文件名。
__LINE__ 行号。
__FUNCTION__ 函数。

#define PRINTLNF(format, ...) printf("("__FILE__": %d) %s: " \
format"\n", __LINE__, __FUNCTION__,##__VA_ARGS__)


在实现了PRINTLNF函数之后,经常需要打印变量。这里重新实现一下 PRINT_INT 。

#define PRINT_INT(value) PRINTLNF(#value":%d",value)